package com.example.springboottest.student.service;

import org.activiti.engine.repository.Deployment;

import java.util.List;
import java.util.Map;

/**
 * 请假流程服务类
 */
public interface LeaveActivitiService {
    /**
     * 部署流程模板
     *
     * @param wfName 流程名
     */
    void doDeployWFTemplate(String wfName);

    /**
     * 查看流程模板
     *
     * @param wfName 流程名
     */
    Deployment doViewWFTemplate(String wfName);

    /**
     * 启动流程
     *
     * @param processDefinitionKey 流程定义关键字
     * @param days 请假天数
     */
    void doStartProcess(String processDefinitionKey,Integer days);

    /**
     * 查询正在运行的流程实例
     *
     * @param processDefinitionKey 流程定义关键字
     */
    List<Map<String,String>>  doSearchProcess(String processDefinitionKey);

    /**
     * 查询正在历史的流程实例
     *
     * @param processDefinitionKey 流程定义关键字
     */
    List<Map<String,String>>  doSearchHistoryProcess(String processDefinitionKey);

    /**
     * 任务查询
     *
     * @param processDefinitionKey 流程定义关键字
     * @param userName             用户名
     */
    List<String> doSearchTask(String processDefinitionKey, String userName);

    /**
     * 处理任务
     *
     * @param taskId 任务ID
     */
    void doDisposeTask(String taskId);
}